package reflectCus;

import java.io.File;
import java.util.Arrays;
//通过反射生成当前类所在目录下的所有子类的实例化对象
public class Test2 {
    public static void main(String[] args) throws Exception{
        File f=new File(Test2.class.getResource(".").toURI());
        System.out.println(f);
        String packageName=Test2.class.getPackage().getName();

        String[] strings=f.list();
        System.out.println(Arrays.toString(strings));//       File[] files=f.listFiles();
//        for (File f1:files
//             ) {
//
//           // System.out.println(f1);
//            if(f1.getName().endsWith(".class")){
//                int firIndex= f1.getName().lastIndexOf("\\");
//                int lastIndex= f1.getName().lastIndexOf(".");
//
//                String line=f1.getName().substring(firIndex+1,lastIndex);
//
//                System.out.println(line);
//                Class cls=Class.forName(packageName+"."+line);
//                Object o=cls.newInstance();
//                System.out.println(o);
//            }
//        }
       // System.out.println(files);
        for (String s:strings
             ) {
            if(s.endsWith(".class")){
                int lastIndex= s.lastIndexOf(".");
                String line=s.substring(0,lastIndex);
                System.out.println(line);
                Class cls=Class.forName(packageName+"."+line);
                Object o=cls.newInstance();
                System.out.println(o);
            }
        }
    }
}
